package zhupf.test.designPattern.singleton;

/**
 *  单例模式，第七种，使用静态内部类的形式
 *  有点，可以实现懒加载的需求，也可以实现线程安全
 *  因为jvm在启动的时候不会去加载内部类，所以可以起到懒加载，而加载内部类是单线程的，所以可以保证线程安全
 *  推荐使用
 */
public class SingletonTest07 {
    public static void main(String[] args) {
        for (int i = 0 ;i<1000;i++){
            new Thread(()-> Singleton07.getInstance(),String.valueOf(i)).start();
        }
    }
}

class Singleton07{

    private Singleton07(){
        System.out.println("这是07 构造");
    }

    private static class SingletonInstance{
        public static  Singleton07 instance = new Singleton07();
        Runtime runtime ;
    }

    public static Singleton07 getInstance(){
        return SingletonInstance.instance;
    }

}
